File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
/// <summary>
/// Add this component to an object with a non-uniform scale (not 1,1,1) to make it 1,1,1 and move / resize any box collider / mesh renderers to match
/// </summary>
public class FixNonUniformScale : MonoBehaviour
{
bool running = false;
// Only call on selected
void OnDrawGizmosSelected() {
if(running) {
return;
}
running = true;
MakeUniform();
DestroyImmediate(this);
}
public void MakeUniform() {
Vector3 originalScale = transform.localScale;
// Nothing to scale here
if(originalScale == Vector3.one) {
return;
}
// Scale to where we should be
transform.localScale = Vector3.one;
MeshRenderer ren = GetComponent<MeshRenderer>();
MeshFilter filter = GetComponent<MeshFilter>();
if (ren != null) {
Transform renObject = new GameObject("Renderer").transform;
if(filter) {
MeshFilter mf = renObject.gameObject.AddComponent<MeshFilter>();
mf.sharedMesh = filter.sharedMesh;
DestroyImmediate(filter);
}
MeshRenderer newRenderer = renObject.gameObject.AddComponent<MeshRenderer>();
newRenderer.sharedMaterial = ren.sharedMaterial;
renObject.parent = transform;
renObject.localPosition = Vector3.zero;
renObject.localRotation = Quaternion.identity;
renObject.localScale = originalScale;
DestroyImmediate(ren);
}
BoxCollider col = GetComponent<BoxCollider>();
if(col != null) {
// Need to resize box collider
col.center = Vector3.zero;
col.size = originalScale;
}
}
}